home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #1 / Amiga Plus CD - 2000 - No. 1.iso / Games / Starter / JST / Developer / sources / src / loaders / Prince / princeread.asm < prev    next >
Encoding:
Assembly Source File  |  1999-12-03  |  14.0 KB  |  590 lines

  1. ; IRA V1.02  (Sep  6 1993)  (c)1993  Tim Ruehsen
  2.  
  3. ; re-source of Prince Of Persia read routine
  4.  
  5.     include    "/disklib_hard/trackmoves.i"
  6.  
  7. CIAB_PRA    EQU    $BFD000
  8. CIAB_PRB    EQU    $BFD100
  9. CIAB_DDRA    EQU    $BFD200
  10. CIAB_DDRB    EQU    $BFD300
  11. CIAB_ICR    EQU    $BFDD00
  12. CIAA_PRA    EQU    $BFE001
  13. CIAA_DDRA    EQU    $BFE201
  14. CIAA_DDRB    EQU    $BFE301
  15. CIAA_TALO    EQU    $BFE401
  16. CIAA_TAHI    EQU    $BFE501
  17. CIAA_ICR    EQU    $BFED01
  18. CIAA_CRA    EQU    $BFEE01
  19. INTREQR        EQU    $DFF01E
  20. DSKPTH        EQU    $DFF020
  21. DSKLEN        EQU    $DFF024
  22. DSKSYNC        EQU    $DFF07E
  23. DMACON        EQU    $DFF096
  24. INTREQ        EQU    $DFF09C
  25. ADKCON        EQU    $DFF09E
  26.  
  27.  
  28.     include    "/lib/libs.i"
  29.  
  30.  
  31.     XDEF    _ReadPOPSectors
  32.  
  33.     XREF    _SysBase
  34.  
  35.  
  36. RAW_LEN = $3100
  37.  
  38. _ReadPOPSectors:
  39.     move.l    4(a7),A1    ; buffer
  40.     move.l    8(a7),D0    ; offset
  41.     move.l    12(a7),D1    ; lenght
  42.  
  43.     movem.l    D1-A6,-(sp)
  44.  
  45.     bsr    @ReadPOPSectors
  46.  
  47.     movem.l    (sp)+,D1-A6
  48.     rts
  49.  
  50. @ReadPOPSectors:
  51.     movem.l    D1-A6,-(sp)
  52.  
  53.     move.l    A1,buffer
  54.     move.l    D0,offset
  55.     move.l    D1,length
  56.  
  57.     move.l    _SysBase,A6
  58.     move.l    #RAW_LEN,D0
  59.     move.l    #MEMF_CHIP,D1
  60.     JSRLIB    AllocMem
  61.     move.l    D0,rawbuffer
  62.     beq    error$
  63.  
  64.  
  65.     move.l    _SysBase,A6
  66.     JSRLIB    Disable
  67.     move.l    _SysBase,A6
  68.     JSRLIB    SuperState
  69.     move.l    D0,userstack
  70.  
  71.     move.w    #$2700,SR
  72.  
  73.     moveq.l    #0,D0
  74.     jsr    _InitDisk
  75.     jsr    _WaitDiskReady
  76.  
  77.     bsr    initread
  78.  
  79.     move.l    buffer,A1
  80.     move.l    rawbuffer,A0
  81.     move.l    offset,D0
  82.     move.l    length,D1
  83.     nop
  84.     nop
  85.     bsr    doread
  86.     bmi    ok$
  87.     st.b    errorflag
  88. ok$
  89.     nop
  90.     nop
  91.     jsr    _EndDisk
  92.  
  93.     move.w    #$2000,SR
  94.     move.l    userstack,D0
  95.     move.l    _SysBase,A6
  96.     JSRLIB    UserState
  97.     move.l    _SysBase,A6
  98.     JSRLIB    Enable
  99.             
  100.     move.l    _SysBase,A6
  101.     move.l    rawbuffer,A1
  102.     move.l    #RAW_LEN,D0
  103.     JSRLIB    FreeMem
  104.  
  105. exit$
  106.     moveq.l    #0,D0
  107.     move.b    errorflag,D0
  108.     movem.l    (sp)+,D1-A6
  109.     rts
  110.  
  111. error$
  112.     moveq    #-1,D7
  113.     bra    exit$
  114.  
  115.  
  116. LAB_0006:
  117.     MOVEM.L    D0-D2,-(A7)        ;0B6: 48E7E000
  118. LAB_0007:
  119.     BTST    #0,CIAA_CRA        ;0BA: 0839000000BFEE01
  120.     BNE.S    LAB_0007        ;0C2: 66F6
  121.  
  122. LAB_0008:
  123.     TST    D0            ;0C4: 4A40
  124.     BEQ    LAB_000C        ;0C6: 67000038
  125.     CMPI    #$005A,D0        ;0CA: 0C40005A
  126.     BHI.S    LAB_0009        ;0CE: 6204
  127.     MOVE    D0,D1            ;0D0: 3200
  128.     BRA.S    LAB_000A        ;0D2: 6004
  129.  
  130.  
  131. LAB_0009:
  132.     MOVE    #$005A,D1        ;0D4: 323C005A
  133. LAB_000A:
  134.     SUB    D1,D0            ;0D8: 9041
  135.     MULU    #$02CC,D1        ;0DA: C2FC02CC
  136.     MOVE    SR,D2            ;0DE: 40C2
  137.     ORI    #$0700,SR        ;0E0: 007C0700
  138.     MOVE.B    D1,CIAA_TALO        ;0E4: 13C100BFE401
  139.     LSR    #8,D1            ;0EA: E049
  140.     MOVE.B    D1,CIAA_TAHI        ;0EC: 13C100BFE501
  141.     MOVE    D2,SR            ;0F2: 46C2
  142. LAB_000B:
  143.     BTST    #0,CIAA_CRA        ;0F4: 0839000000BFEE01
  144.     BNE.S    LAB_000B        ;0FC: 66F6
  145.     BRA.S    LAB_0008        ;0FE: 60C4
  146. LAB_000C:
  147.     MOVEM.L    (A7)+,D0-D2        ;100: 4CDF0007
  148.     RTS                ;104: 4E75
  149.  
  150.  
  151.     MOVEM.L    D0/D2,-(A7)        ;106: 48E7A000
  152. LAB_000D:
  153.     BTST    #0,CIAA_CRA        ;10A: 0839000000BFEE01
  154.     BNE.S    LAB_000D        ;112: 66F6
  155.     MULU    #$B746,D0        ;114: C0FCB746
  156.     ADDI.L    #$00008000,D0        ;118: 068000008000
  157.     SWAP    D0            ;11E: 4840
  158.     TST    D0            ;120: 4A40
  159.     BEQ    LAB_000F        ;122: 67000022
  160.     MOVE    SR,D1            ;126: 40C1
  161.     ORI    #$0700,SR        ;128: 007C0700
  162.     MOVE.B    D0,CIAA_TALO        ;12C: 13C000BFE401
  163.     LSR    #8,D0            ;132: E048
  164.     MOVE.B    D0,CIAA_TAHI        ;134: 13C000BFE501
  165.     MOVE    D1,SR            ;13A: 46C1
  166. LAB_000E:
  167.     BTST    #0,CIAA_CRA        ;13C: 0839000000BFEE01
  168.     BNE.S    LAB_000E        ;144: 66F6
  169. LAB_000F:
  170.     MOVEM.L    (A7)+,D0/D2        ;146: 4CDF0005
  171.     RTS                ;14A: 4E75
  172.  
  173.  
  174. initread:
  175.     MOVEM.L    D0-D1,-(A7)        ;14C: 48E7C000
  176.     MOVE    #$7F00,ADKCON        ;150: 33FC7F0000DFF09E
  177.     MOVE    #$9100,ADKCON        ;158: 33FC910000DFF09E
  178.     MOVE.B    #$FF,CIAB_PRB        ;160: 13FC00FF00BFD100
  179.     MOVE.B    #$8F,CIAB_PRB        ;168: 13FC008F00BFD100
  180.     MOVE.B    #$FF,CIAB_PRB        ;170: 13FC00FF00BFD100
  181.     MOVE.B    #$F7,CIAB_PRB        ;178: 13FC00F700BFD100
  182.     BSR    LAB_0031        ;180: 610002DC
  183.     BTST    #2,CIAA_PRA        ;184: 0839000200BFE001
  184.     NOP                ;18C: 4E71
  185.     MOVE.B    #$7F,CIAB_PRB        ;18E: 13FC007F00BFD100
  186.     MOVE.B    #$77,CIAB_PRB        ;196: 13FC007700BFD100
  187.     MOVE    #$00FA,D0        ;19E: 303C00FA
  188.     MOVE    #$0010,D1        ;1A2: 323C0010
  189. LAB_0010:
  190.     BSR    LAB_0006        ;1A6: 6100FF0E
  191.     BTST    #5,CIAA_PRA        ;1AA: 0839000500BFE001
  192.     BEQ.S    LAB_0011        ;1B2: 6706
  193.     SUBQ    #1,D1            ;1B4: 5341
  194.     BNE.S    LAB_0010        ;1B6: 66EE
  195.     NOP                ;1B8: 4E71
  196. LAB_0011:
  197.     BSR    LAB_0028        ;1BA: 61000230
  198.     ORI.B    #$08,CCR        ;1BE: 003C0008
  199.     BRA.S    LAB_0012        ;1C2: 6004
  200.     ANDI.B    #$F7,CCR        ;1C4: 023C00F7
  201. LAB_0012:
  202.     MOVEM.L    (A7)+,D0-D1        ;1C8: 4CDF0003
  203.     RTS                ;1CC: 4E75
  204.     MOVE.B    #$FF,CIAB_PRB        ;1CE: 13FC00FF00BFD100
  205.     MOVE.B    #$87,CIAB_PRB        ;1D6: 13FC008700BFD100
  206.     MOVE.B    #$FF,CIAB_PRB        ;1DE: 13FC00FF00BFD100
  207.     RTS                ;1E6: 4E75
  208.     MOVE.B    #$FF,CIAB_PRB        ;1E8: 13FC00FF00BFD100
  209.     MOVE.B    #$F7,CIAB_PRB        ;1F0: 13FC00F700BFD100
  210.     BSR    LAB_0031        ;1F8: 61000264
  211. LAB_0013:
  212.     BTST    #2,CIAA_PRA        ;1FC: 0839000200BFE001
  213.     BNE.S    LAB_0013        ;204: 66F6
  214.     MOVE.B    #$FF,CIAB_PRB        ;206: 13FC00FF00BFD100
  215.     RTS                ;20E: 4E75
  216. LAB_0014:
  217.     MOVEM.L    A1,-(A7)        ;210: 48E70040
  218.     MOVEA.L    #$00000000,A1        ;214: 227C00000000
  219.     BSR    LAB_0019        ;21A: 61000030
  220.     MOVEM.L    (A7)+,A1        ;21E: 4CDF0200
  221.     RTS
  222.  
  223.  
  224. doread:
  225.  
  226.     MOVEM.L    D0-D1/A1,-(A7)        ;224: 48E7C040
  227. LAB_0015:
  228.     BSR    LAB_0019        ;228: 61000022
  229.     BPL.S    LAB_0017        ;22C: 6A14
  230.     SUBQ    #1,D1            ;22E: 5341
  231.     BEQ.S    LAB_0016        ;230: 670A
  232.     ADDQ    #1,D0            ;232: 5240
  233.     ADDA.L    #$00001800,A1        ;234: D3FC00001800
  234.     BRA.S    LAB_0015        ;23A: 60EC
  235. LAB_0016:
  236.     ORI.B    #$08,CCR        ;23C: 003C0008
  237.     BRA.S    LAB_0018        ;240: 6004
  238. LAB_0017:
  239.     ANDI.B    #$F7,CCR        ;242: 023C00F7
  240. LAB_0018:
  241.     MOVEM.L    (A7)+,D0-D1/A1        ;246: 4CDF0203
  242.     RTS                ;24A: 4E75
  243. LAB_0019:
  244.     MOVEM.L    D0-D4/A0-A3,-(A7)    ;24C: 48E7F8F0
  245.     MOVEA.L    A0,A2            ;250: 2448
  246.     MOVEA.L    A1,A3            ;252: 2649
  247.     BTST    #5,CIAA_PRA        ;254: 0839000500BFE001
  248.     NOP                ;25C: 4E71
  249.     NOP                ;25E: 4E71
  250.     BTST    #2,CIAA_PRA        ;260: 0839000200BFE001
  251.     NOP                ;268: 4E71
  252.     NOP                ;26A: 4E71
  253.     BSR    ReadRawTrack        ;26C: 610001A8
  254.     MOVE    #$0004,D4        ;270: 383C0004
  255. LAB_001A:
  256.     SUBQ    #1,D4            ;274: 5344
  257.     BMI.S    LAB_001C        ;276: 6B6E
  258.     MOVE    #$3020,D0        ;278: 303C3020
  259.     MOVE    #$4891,D1        ;27C: 323C4891
  260.     MOVEA.L    A2,A0            ;280: 204A
  261.     BSR    LAB_0035        ;282: 61000256
  262.     CMPI    #$4891,(A2)        ;286: 0C524891
  263.     BNE.S    LAB_001A        ;28A: 66E8
  264.     CMPI    #$44A9,2(A2)        ;28C: 0C6A44A90002
  265.     BNE.S    LAB_001A        ;292: 66E0
  266.     MOVE    #$0008,D0        ;294: 303C0008
  267.     LEA    4(A2),A0        ;298: 41EA0004
  268.     MOVEA.L    A0,A1            ;29C: 2248
  269.     BSR    DecodeBytes        ;29E: 61000378
  270.     MOVE    #$3008,D0        ;2A2: 303C3008
  271.     LEA    12(A2),A0        ;2A6: 41EA000C
  272.     BSR    LAB_003F        ;2AA: 610003B6
  273.     CMP.L    4(A2),D0        ;2AE: B0AA0004
  274.     BNE.S    LAB_001A        ;2B2: 66C0
  275.     MOVE    #$0008,D0        ;2B4: 303C0008
  276.     LEA    12(A2),A0        ;2B8: 41EA000C
  277.     MOVEA.L    A0,A1            ;2BC: 2248
  278.     BSR    DecodeBytes        ;2BE: 61000358
  279.     MOVE.L    (A0),D0            ;2C2: 2010
  280.     CMP    LAB_0005(PC),D0        ;2C4: B07AFDEE
  281.     BNE.S    LAB_001C        ;2C8: 661C
  282.     MOVE    #$3000,D0        ;2CA: 303C3000
  283.     LEA    20(A2),A0        ;2CE: 41EA0014
  284.     MOVEA.L    A3,A1            ;2D2: 224B
  285.     CMPA.L    #$00000000,A1        ;2D4: B3FC00000000
  286.     BEQ.S    LAB_001B        ;2DA: 6704
  287.     BSR    DecodeBytes        ;2DC: 6100033A
  288. LAB_001B:
  289.     ORI.B    #$08,CCR        ;2E0: 003C0008
  290.     BRA.S    LAB_001D        ;2E4: 6004
  291. LAB_001C:
  292.     ANDI.B    #$F7,CCR        ;2E6: 023C00F7
  293. LAB_001D:
  294.     MOVEM.L    (A7)+,D0-D4/A0-A3    ;2EA: 4CDF0F1F
  295.     RTS                ;2EE: 4E75
  296.     MOVEM.L    D0-D1/A1,-(A7)        ;2F0: 48E7C040
  297. LAB_001E:
  298.     BSR    LAB_0022        ;2F4: 61000022
  299.     BPL.S    LAB_0020        ;2F8: 6A14
  300.     SUBQ    #1,D1            ;2FA: 5341
  301.     BEQ.S    LAB_001F        ;2FC: 670A
  302.     ADDQ    #1,D0            ;2FE: 5240
  303.     ADDA.L    #$00001800,A1        ;300: D3FC00001800
  304.     BRA.S    LAB_001E        ;306: 60EC
  305. LAB_001F:
  306.     ORI.B    #$08,CCR        ;308: 003C0008
  307.     BRA.S    LAB_0021        ;30C: 6004
  308. LAB_0020:
  309.     ANDI.B    #$F7,CCR        ;30E: 023C00F7
  310. LAB_0021:
  311.     MOVEM.L    (A7)+,D0-D1/A1        ;312: 4CDF0203
  312.     RTS                ;316: 4E75
  313. LAB_0022:
  314.     MOVEM.L    D0-D1,-(A7)        ;318: 48E7C000
  315.     BTST    #5,CIAA_PRA        ;31C: 0839000500BFE001
  316.     NOP                ;324: 4E71
  317.     BTST    #2,CIAA_PRA        ;326: 0839000200BFE001
  318.     NOP                ;32E: 4E71
  319.     BTST    #3,CIAA_PRA        ;330: 0839000300BFE001
  320.     BEQ.S    LAB_0024        ;338: 6728
  321.     BSR    ReadRawTrack        ;33A: 610000DA
  322.     MOVE    #$0004,D1        ;33E: 323C0004
  323. LAB_0023:
  324.     SUBQ    #1,D1            ;342: 5341
  325.     BMI.S    LAB_0024        ;344: 6B1C
  326.     BSR    LAB_0026        ;346: 61000024
  327.     MOVE    #$3300,D0        ;34A: 303C3300
  328.     BSR    LAB_0037        ;34E: 610001FE
  329.     MOVE    LAB_0005(PC),D0        ;352: 303AFD60
  330.     BSR    LAB_0014        ;356: 6100FEB8
  331.     BPL.S    LAB_0023        ;35A: 6AE6
  332.     ORI.B    #$08,CCR        ;35C: 003C0008
  333.     BRA.S    LAB_0025        ;360: 6004
  334. LAB_0024:
  335.     ANDI.B    #$F7,CCR        ;362: 023C00F7
  336. LAB_0025:
  337.     MOVEM.L    (A7)+,D0-D1        ;366: 4CDF0003
  338.     RTS                ;36A: 4E75
  339. LAB_0026:
  340.     MOVEM.L    D0-D1/A0-A3,-(A7)    ;36C: 48E7C0F0
  341.     MOVEA.L    A1,A3            ;370: 2649
  342.     MOVE    #$AAAA,D0        ;372: 303CAAAA
  343.     MOVE    #$0173,D1        ;376: 323C0173
  344. LAB_0027:
  345.     MOVE    D0,(A0)+        ;37A: 30C0
  346.     DBF    D1,LAB_0027        ;37C: 51C9FFFC
  347.     MOVE.L    #$48914891,(A0)+    ;380: 20FC48914891
  348.     MOVE    #$44A9,(A0)+        ;386: 30FC44A9
  349.     MOVEA.L    A0,A2            ;38A: 2448
  350.     MOVE.L    #$00000000,(A0)+    ;38C: 20FC00000000
  351.     MOVE.L    #$00000000,(A0)+    ;392: 20FC00000000
  352.     MOVE    #$0000,(A0)        ;398: 30BC0000
  353.     MOVE    LAB_0005(PC),2(A0)    ;39C: 317AFD160002
  354.     MOVE    #$0004,D0        ;3A2: 303C0004
  355.     MOVEA.L    A0,A1            ;3A6: 2248
  356.     BSR    LAB_0039        ;3A8: 6100020A
  357.     ADDA    #$0008,A0        ;3AC: D0FC0008
  358.     MOVE    #$1800,D0        ;3B0: 303C1800
  359.     MOVEA.L    A3,A1            ;3B4: 224B
  360.     BSR    LAB_0039        ;3B6: 610001FC
  361.     ADDA    #$3000,A0        ;3BA: D0FC3000
  362.     MOVE    #$AAAA,(A0)+        ;3BE: 30FCAAAA
  363.     MOVE    #$3008,D0        ;3C2: 303C3008
  364.     LEA    8(A2),A0        ;3C6: 41EA0008
  365.     BSR    LAB_003F        ;3CA: 61000296
  366.     MOVE.L    D0,(A2)            ;3CE: 2480
  367.     MOVE    #$0004,D0        ;3D0: 303C0004
  368.     MOVEA.L    A2,A0            ;3D4: 204A
  369.     MOVEA.L    A2,A1            ;3D6: 224A
  370.     BSR    LAB_0039        ;3D8: 610001DA
  371.     MOVE    #$3010,D0        ;3DC: 303C3010
  372.     MOVEA.L    A2,A0            ;3E0: 204A
  373.     BSR    LAB_003B        ;3E2: 610001FC
  374.     MOVEM.L    (A7)+,D0-D1/A0-A3    ;3E6: 4CDF0F03
  375.     RTS                ;3EA: 4E75
  376. LAB_0028:
  377.     MOVEM.L    D0,-(A7)        ;3EC: 48E78000
  378. LAB_0029:
  379.     BTST    #4,CIAA_PRA        ;3F0: 0839000400BFE001
  380.     BEQ.S    LAB_002A        ;3F8: 6706
  381.     BSR    LAB_0033        ;3FA: 610000A0
  382.     BRA.S    LAB_0029        ;3FE: 60F0
  383. LAB_002A:
  384.     BSET    #2,CIAB_PRB        ;400: 08F9000200BFD100
  385.     MOVE    #$0000,LAB_0005        ;408: 33FC00000007ECB4
  386.     MOVEM.L    (A7)+,D0        ;410: 4CDF0001
  387.     RTS                ;414: 4E75
  388.  
  389. ReadRawTrack:
  390.     MOVEM.L    D0-D1,-(A7)        ;416: 48E7C000
  391.     MOVE    LAB_0005(PC),D1        ;41A: 323AFC98
  392.     MOVE    D0,LAB_0005        ;41E: 33C00007ECB4
  393.     BTST    #0,D0            ;424: 08000000
  394.     BEQ.S    LAB_002C        ;428: 670A
  395.     BCLR    #2,CIAB_PRB        ;42A: 08B9000200BFD100
  396.     BRA.S    LAB_002D        ;432: 6008
  397. LAB_002C:
  398.     BSET    #2,CIAB_PRB        ;434: 08F9000200BFD100
  399. LAB_002D:
  400.     LSR    #1,D0            ;43C: E248
  401.     LSR    #1,D1            ;43E: E249
  402.     SUB    D1,D0            ;440: 9041
  403.     BEQ.S    LAB_0030        ;442: 6714
  404.     BMI.S    LAB_002F        ;444: 6B0A
  405. LAB_002E:
  406.     BSR    LAB_0031        ;446: 61000016
  407.     SUBQ    #1,D0            ;44A: 5340
  408.     BNE.S    LAB_002E        ;44C: 66F8
  409.     BRA.S    LAB_0030        ;44E: 6008
  410. LAB_002F:
  411.     BSR    LAB_0033        ;450: 6100004A
  412.     ADDQ    #1,D0            ;454: 5240
  413.     BNE.S    LAB_002F        ;456: 66F8
  414. LAB_0030:
  415.     MOVEM.L    (A7)+,D0-D1        ;458: 4CDF0003
  416.     RTS                ;45C: 4E75
  417. LAB_0031:
  418.     MOVEM.L    D0-D1,-(A7)        ;45E: 48E7C000
  419.     MOVE.B    CIAB_PRB,D1        ;462: 123900BFD100
  420.     BCLR    #1,CIAB_PRB        ;468: 08B9000100BFD100
  421.     BCLR    #0,CIAB_PRB        ;470: 08B9000000BFD100
  422.     NOP                ;478: 4E71
  423.     NOP                ;47A: 4E71
  424.     BSET    #0,CIAB_PRB        ;47C: 08F9000000BFD100
  425.     MOVE    #$0003,D0        ;484: 303C0003
  426.     BTST    #1,D1            ;488: 08010001
  427.     BEQ.S    LAB_0032        ;48C: 6704
  428.     ADDI    #$000F,D0        ;48E: 0640000F
  429. LAB_0032:
  430.     BSR    LAB_0006        ;492: 6100FC22
  431.     MOVEM.L    (A7)+,D0-D1        ;496: 4CDF0003
  432.     RTS                ;49A: 4E75
  433. LAB_0033:
  434.     MOVEM.L    D0-D1,-(A7)        ;49C: 48E7C000
  435.     MOVE.B    CIAB_PRB,D1        ;4A0: 123900BFD100
  436.     BSET    #1,CIAB_PRB        ;4A6: 08F9000100BFD100
  437.     BCLR    #0,CIAB_PRB        ;4AE: 08B9000000BFD100
  438.     NOP                ;4B6: 4E71
  439.     NOP                ;4B8: 4E71
  440.     BSET    #0,CIAB_PRB        ;4BA: 08F9000000BFD100
  441.     MOVE    #$0003,D0        ;4C2: 303C0003
  442.     BTST    #1,D1            ;4C6: 08010001
  443.     BNE.S    LAB_0034        ;4CA: 6604
  444.     ADDI    #$000F,D0        ;4CC: 0640000F
  445. LAB_0034:
  446.     BSR    LAB_0006        ;4D0: 6100FBE4
  447.     MOVEM.L    (A7)+,D0-D1        ;4D4: 4CDF0003
  448.     RTS                ;4D8: 4E75
  449. LAB_0035:
  450.     MOVEM.L    D0,-(A7)        ;4DA: 48E78000
  451.     MOVE    #$1002,INTREQ        ;4DE: 33FC100200DFF09C
  452.     MOVE.L    A0,DSKPTH        ;4E6: 23C800DFF020
  453.     MOVE    D1,DSKSYNC        ;4EC: 33C100DFF07E
  454.     MOVE    #$8400,ADKCON        ;4F2: 33FC840000DFF09E
  455.     MOVE    #$4000,DSKLEN        ;4FA: 33FC400000DFF024
  456.     MOVE    #$8010,DMACON        ;502: 33FC801000DFF096
  457.     LSR    #1,D0            ;50A: E248
  458.     ORI    #$8000,D0        ;50C: 00408000
  459.     MOVE    D0,DSKLEN        ;510: 33C000DFF024
  460.     MOVE    D0,DSKLEN        ;516: 33C000DFF024
  461. LAB_0036:
  462.     MOVE    INTREQR,D0        ;51C: 303900DFF01E
  463.     ANDI    #$0002,D0        ;522: 02400002
  464.     BEQ.S    LAB_0036        ;526: 67F4
  465.     MOVE    #$0010,DMACON        ;528: 33FC001000DFF096
  466.     MOVE    #$4000,DSKLEN        ;530: 33FC400000DFF024
  467.     MOVE    #$0400,ADKCON        ;538: 33FC040000DFF09E
  468.     MOVE    #$1002,INTREQ        ;540: 33FC100200DFF09C
  469.     MOVEM.L    (A7)+,D0        ;548: 4CDF0001
  470.     RTS                ;54C: 4E75
  471. LAB_0037:
  472.     MOVEM.L    D0,-(A7)        ;54E: 48E78000
  473.     MOVE    #$0002,INTREQ        ;552: 33FC000200DFF09C
  474.     MOVE.L    A0,DSKPTH        ;55A: 23C800DFF020
  475.     MOVE    #$4000,DSKLEN        ;560: 33FC400000DFF024
  476.     MOVE    #$8010,DMACON        ;568: 33FC801000DFF096
  477.     LSR    #1,D0            ;570: E248
  478.     ORI    #$C000,D0        ;572: 0040C000
  479.     MOVE    D0,DSKLEN        ;576: 33C000DFF024
  480.     MOVE    D0,DSKLEN        ;57C: 33C000DFF024
  481. LAB_0038:
  482.     MOVE    INTREQR,D0        ;582: 303900DFF01E
  483.     ANDI    #$0002,D0        ;588: 02400002
  484.     BEQ.S    LAB_0038        ;58C: 67F4
  485.     MOVE    #$0010,DMACON        ;58E: 33FC001000DFF096
  486.     MOVE    #$4000,DSKLEN        ;596: 33FC400000DFF024
  487.     MOVE    #$1002,INTREQ        ;59E: 33FC100200DFF09C
  488.     MOVE    #$0002,D0        ;5A6: 303C0002
  489.     BSR    LAB_0006        ;5AA: 6100FB0A
  490.     MOVEM.L    (A7)+,D0        ;5AE: 4CDF0001
  491.     RTS                ;5B2: 4E75
  492. LAB_0039:
  493.     MOVEM.L    D0-D1/D4/A0-A2,-(A7)    ;5B4: 48E7C8E0
  494.     MOVEA.L    A0,A2            ;5B8: 2448
  495.     ADDA    D0,A2            ;5BA: D4C0
  496.     MOVE    D0,D4            ;5BC: 3800
  497.     LSR    #1,D4            ;5BE: E24C
  498.     SUBQ    #1,D4            ;5C0: 5344
  499. LAB_003A:
  500.     MOVE    (A1)+,D0        ;5C2: 3019
  501.     MOVE    D0,D1            ;5C4: 3200
  502.     LSR    #1,D1            ;5C6: E249
  503.     ANDI    #$5555,D1        ;5C8: 02415555
  504.     MOVE    D1,(A0)+        ;5CC: 30C1
  505.     MOVE    D0,D1            ;5CE: 3200
  506.     ANDI    #$5555,D1        ;5D0: 02415555
  507.     MOVE    D1,(A2)+        ;5D4: 34C1
  508.     DBF    D4,LAB_003A        ;5D6: 51CCFFEA
  509.     MOVEM.L    (A7)+,D0-D1/D4/A0-A2    ;5DA: 4CDF0713
  510.     RTS                ;5DE: 4E75
  511. LAB_003B:
  512.     MOVEM.L    D0-D4/A0,-(A7)        ;5E0: 48E7F880
  513.     MOVE    D0,D4            ;5E4: 3800
  514.     LSR    #1,D4            ;5E6: E24C
  515.     SUBQ    #1,D4            ;5E8: 5344
  516.     MOVE    -2(A0),D0        ;5EA: 3028FFFE
  517.     ANDI    #$5555,D0        ;5EE: 02405555
  518. LAB_003C:
  519.     MOVE    (A0),D1            ;5F2: 3210
  520.     ANDI    #$5555,D1        ;5F4: 02415555
  521.     MOVE    D1,D2            ;5F8: 3401
  522.     ASL    #1,D2            ;5FA: E342
  523.     MOVE    D1,D3            ;5FC: 3601
  524.     LSR    #1,D0            ;5FE: E248
  525.     ROXR    #1,D3            ;600: E253
  526.     OR    D3,D2            ;602: 8443
  527.     EORI    #$AAAA,D2        ;604: 0A42AAAA
  528.     OR    D1,D2            ;608: 8441
  529.     MOVE    D2,(A0)+        ;60A: 30C2
  530.     MOVE    D1,D0            ;60C: 3001
  531.     DBF    D4,LAB_003C        ;60E: 51CCFFE2
  532.     MOVEM.L    (A7)+,D0-D4/A0        ;612: 4CDF011F
  533.     RTS                ;616: 4E75
  534.  
  535.  
  536. DecodeBytes:
  537.     MOVEM.L    D0-D2/A0-A2,-(A7)    ;618: 48E7E0E0
  538.     MOVEA.L    A0,A2            ;61C: 2448
  539.     LSR    #1,D0            ;61E: E248
  540.     ADDA    D0,A2            ;620: D4C0
  541.     LSR    #1,D0            ;622: E248
  542.     SUBQ    #1,D0            ;624: 5340
  543. LAB_003E:
  544.     MOVE    (A0)+,D1        ;626: 3218
  545.     ANDI    #$5555,D1        ;628: 02415555
  546.     ASL    #1,D1            ;62C: E341
  547.     MOVE    (A2)+,D2        ;62E: 341A
  548.     ANDI    #$5555,D2        ;630: 02425555
  549.     OR    D2,D1            ;634: 8242
  550.     MOVE    D1,(A1)+        ;636: 32C1
  551.     DBF    D0,LAB_003E        ;638: 51C8FFEC
  552.     MOVEM.L    (A7)+,D0-D2/A0-A2    ;63C: 4CDF0707
  553.     RTS    
  554.  
  555. LAB_003F:
  556.     MOVEM.L    D1-D2/A0,-(A7)        ;662: 48E76080
  557.     MOVE    D0,D1            ;666: 3200
  558.     LSR    #2,D1            ;668: E449
  559.     SUBQ    #1,D1            ;66A: 5341
  560.     MOVEQ    #0,D0            ;66C: 7000
  561. LAB_0040:
  562.     MOVE.L    (A0)+,D2        ;66E: 2418
  563.     EOR.L    D2,D0            ;670: B580
  564.     DBF    D1,LAB_0040        ;672: 51C9FFFA
  565.     ANDI.L    #$55555555,D0        ;676: 028055555555
  566.     MOVEM.L    (A7)+,D1-D2/A0        ;67C: 4CDF0106
  567.     RTS                ;680: 4E75
  568.  
  569.  
  570. rawbuffer:
  571.     dc.l    0
  572.  
  573. userstack:
  574.     dc.l    0
  575.  
  576. buffer:
  577.     dc.l    0
  578.  
  579. length:
  580.     dc.l    0
  581.  
  582. offset:
  583.     dc.l    0
  584.  
  585. errorflag:
  586.     dc.l    0
  587.  
  588. LAB_0005:
  589.     DC.W    $0000            ;0B4
  590.